perm filename INFIX.LSP[BNF,JRA] blob sn#030172 filedate 1973-03-21 generic text, type T, neo UTF8
00100	
00200	
00300	(DEFPROP <PRED> 
00400	 (LAMBDA NIL
00500	  (NLRR (QUOTE PRED)
00600		(FUNCTION
00700		 (LAMBDA NIL
00800		  (COND ((AND (<PREPREDLET>) (<ITMLST>)) (CONS (STK 1) (STK 0)))
00900			((AND (<PREPREDLET>)) (CONS (STK 0) (CONS (CONS (QUOTE %) NIL) NIL)))
01000			((AND (<INFPREDLET>)) (CONS (STK 0) (CONS (CONS (QUOTE %) NIL) NIL)))
01100			((AND (<TM>) (<INFPREDLET>) (<TM1>)) (CONS (STK 1) (CONS (STK 2) (CONS (STK 0) NIL))))
01200			(*NIL*)))))) 
01300	EXPR)
01400	
01500	(DEFPROP <ITMLST> 
01600	 (LAMBDA NIL (NLRR (QUOTE ITMLST) (FUNCTION (LAMBDA NIL (COND ((AND (CH /() (<ITMS>)) (STK 0)) (*NIL*)))))) 
01700	EXPR)
01800	
01900	(DEFPROP <ITMS> 
02000	 (LAMBDA NIL
02100	  (NLRR (QUOTE ITMS)
02200		(FUNCTION
02300		 (LAMBDA NIL
02400		  (COND ((AND (<TM2>) (<ITMS>)) (CONS (STK 1) (STK 0)))
02500			((AND (<TM>) (CH /))) (CONS (STK 1) NIL))
02600			(*NIL*)))))) 
02700	EXPR)
02800	
02900	(DEFPROP <TM> 
03000	 (LAMBDA NIL
03100	  (LRR (QUOTE TM)
03200	       (FUNCTION
03300		(LAMBDA NIL
03400		 (COND ((AND (<IVAR>)) (STK 0))
03500		       ((AND (<PREFN>) (<ITMLST>)) (CONS (STK 1) (STK 0)))
03600		       ((AND (<PREFN>)) (CONS (STK 0) NIL))
03700		       ((AND (CH /() (<TM>) (CH /))) (STK 1))
03800		       (*NIL*))))
03900	       (FUNCTION
04000		(LAMBDA (<*>) (COND ((AND (<INFN>) (<TM1>)) (CONS (STK 1) (CONS <*> (CONS (STK 0) NIL)))) (*NIL*)))))) 
04100	EXPR)
04200	
04300	(DEFPROP <TM1> 
04400	 (LAMBDA NIL (NLRR (QUOTE TM1) (FUNCTION (LAMBDA NIL (COND ((AND (<TM>)) (STK 0)) (*NIL*)))))) 
04500	EXPR)
04600	
04700	(DEFPROP <TM2> 
04800	 (LAMBDA NIL (NLRR (QUOTE TM2) (FUNCTION (LAMBDA NIL (COND ((AND (<TM>) (CH /,)) (STK 1)) (*NIL*)))))) 
04900	EXPR)
05000	
05100	(DEFPROP >PRED< 
05200	 (LAMBDA(%N)
05300	  (OUTRUL %N
05400		  (FUNCTION
05500		   (LAMBDA NIL
05600		    (COND
05610	((AND(MATCH @(*(%)))(>PREPREDLET< 0))(STK0))
05620	((AND(MATCH @(*(%)))(>INFPREDLET< 0))(STK0))
05650	 ((AND (MATCH (QUOTE (* . *))) (>PREPREDLET< 1) (>ITMLST< 0)) (LIST (STK1) (STK0)))
05900			  ((AND (MATCH (QUOTE (* * *))) (>INFPREDLET< 2) (>TM< 1) (>TM1< 0))
06000			   (LIST (STK1) (STK2) (STK0)))))))) 
06100	EXPR)
06200	
06300	(DEFPROP >ITMLST< 
06400	 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>ITMS< 1) (LIST (QUOTE (:CH /()) (STK1)))))))) 
06500	EXPR)
06600	
06700	(DEFPROP >ITMS< 
06800	 (LAMBDA(%N)
06900	  (OUTRUL %N
07000		  (FUNCTION
07100		   (LAMBDA NIL
07200		    (COND ((AND (MATCH (QUOTE (*))) (>TM< 0)) (LIST (STK0) (QUOTE (:CH /)))))
07300			  ((AND (MATCH (QUOTE (* . *))) (>TM2< 1) (>ITMS< 0)) (LIST (STK1) (STK0)))))))) 
07400	EXPR)
07500	
07600	(DEFPROP >TM< 
07700	 (LAMBDA(%N)
07800	  (OUTRUL %N
07900		  (FUNCTION
08000		   (LAMBDA NIL
08100		    (COND ((>IVAR< 1) (STK1))
08200			  ((AND (MATCH (QUOTE (*))) (>PREFN< 0)) (STK0))
08300			  ((AND (MATCH (QUOTE (* * *))) (>INFN< 2) (>TM< 1) (>TM1< 0)) (LIST (STK1) (STK2) (STK0)))
08400			  ((AND (MATCH (QUOTE (* . *))) (>PREFN< 1) (>ITMLST< 0)) (LIST (STK1) (STK0)))
08500			  ((>TM< 1) (LIST (QUOTE (:CH /()) (STK1) (QUOTE (:CH /)))))))))) 
08600	EXPR)
08700	
08800	(DEFPROP >TM1< 
08900	 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>TM< 1) (STK1))))))) 
09000	EXPR)
09100	
09200	(DEFPROP >TM2< 
09300	 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>TM< 1) (LIST (STK1) (QUOTE (:CH /,))))))))) 
09400	EXPR)